package pers.xiqingbo.utils;

import org.apache.commons.beanutils.BeanUtils;

import java.math.BigDecimal;
import java.util.Map;

/**
 * @PackageName: pers.xiqingbo.utils
 * @ClassName: WebUtils
 * @Description: beanUtils对JavaBean的属性进行处理
 * @Author: Schieber
 * @Date: 2021/2/18 上午 8:26
 */
public class WebUtils {
    /**
     * 将Map值注入到对应的JavaBean属性中，降低耦合度
     *
     * @param bean  正在填充其属性的JavaBean
     * @param value 以属性名称作为键的映射，并设置了相应的（String或String []）值
     */
    public static <T> T copyParamToBean(T bean, Map<String, String[]> value) {
        try {
            BeanUtils.populate(bean, value);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return bean;
    }

    /**
     * 将字符串转换为int类型的数据
     *
     * @param strInt       需要转换的字符串
     * @param defaultValue 如果字符串不包含可分析的整数转换失败返回默认值
     * @return 返回转换为int类型的字符串
     */
    public static Integer parseInt(String strInt, Integer defaultValue) {
        if (strInt != null) {
            return Integer.parseInt(strInt);
        } else {
            return defaultValue;
        }
    }

    /**
     * 将字符串转换为BigDecimal类型的数据
     *
     * @param strBigDec    需要转换的字符串
     * @param defaultValue 如果字符串不包含可分析的小数转换失败返回默认值
     * @return 返回转为BigDecimal类型的字符串
     */
    public static BigDecimal parseBigDecimal(String strBigDec, String defaultValue) {
        BigDecimal bigDecimal = null;
        try {
            bigDecimal = new BigDecimal(strBigDec);
            return bigDecimal;
        } catch (Exception e) {
            e.printStackTrace();
        }
        bigDecimal = new BigDecimal(defaultValue);
        return bigDecimal;
    }
}
